home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume23 / sc / patch03 next >
Encoding:
Text File  |  1991-10-16  |  31.6 KB  |  1,218 lines

  1. Newsgroups: comp.sources.misc
  2. From: uunet!sawmill!prslnk!buhrt (Jeff Buhrt)
  3. Subject:  v23i035:  sc - The SC Spreadsheet, Patch03
  4. Message-ID: <1991Sep29.034302.11419@sparky.imd.sterling.com>
  5. X-Md4-Signature: ca51f8df5c63c2b7f36cabdc6580bc8d
  6. Date: Sun, 29 Sep 1991 03:43:02 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: uunet!sawmill!prslnk!buhrt (Jeff Buhrt)
  10. Posting-number: Volume 23, Issue 35
  11. Archive-name: sc/patch03
  12. Environment: UNIX, VMS, MS-DOS
  13. Patch-To: sc: Volume 20, Issue 35-41
  14.  
  15. Requires: Sc6.16, patch 01 and patch 02 be applied first.
  16.  
  17. This is a SHAR archive that MUST BE extracted before applying pch618-619
  18. to Sc6.18 to get the file build.com, the new revision level will be: 6.19.
  19. To see what this changes see CHANGES down about 30 lines.
  20. This fixes an overlooked possible NULL pointer, adds VMS support,
  21. and a few new features.
  22.                         -Jeff Buhrt
  23.                     {sequent,uunet}!sawmill!prslnk!buhrt
  24.                     812-275-0750 work
  25.                     Proslink, Inc.
  26. ----
  27. #!/bin/sh
  28. # This is a shell archive (shar 3.20)
  29. # made 09/26/1991 20:23 UTC by buhrt@prslnk
  30. # Source directory /u/buhrt/src/sc
  31. #
  32. # existing files WILL be overwritten
  33. #
  34. # This shar contains:
  35. # length  mode       name
  36. # ------ ---------- ------------------------------------------
  37. #  27397 -rw-rw-rw- pch618-619
  38. #   1437 -r--r--r-- build.com
  39. #
  40. if touch 2>&1 | fgrep '[-amc]' > /dev/null
  41.  then TOUCH=touch
  42.  else TOUCH=true
  43. fi
  44. # ============= pch618-619 ==============
  45. echo "x - extracting pch618-619 (Text)"
  46. sed 's/^X//' << 'SHAR_EOF' > pch618-619 &&
  47. X*** 618/CHANGES    Thu Sep 26 10:39:38 1991
  48. X--- CHANGES    Thu Sep 26 10:17:08 1991
  49. X***************
  50. X*** 1,3 ****
  51. X--- 1,20 ----
  52. X+ CHANGES BETWEEN 6.19 and 6.18
  53. X+ Tom Tkacik
  54. X+     -sc.doc and CHANGES changes
  55. X+ Edgard
  56. X+     -moving right off the screen now redraws vs optimize
  57. X+ Sisira Jayasinghe
  58. X+     - added build.com (VMS) and VMS fixes
  59. X+ Jonathan I. Kamen && Charlie Shub
  60. X+     -noted fmod doesn't exist on BSD4.3 and Mt Xinu 
  61. X+ Ben Priest
  62. X+     -vi compatability: ' ' moves right as well as 'l' while line editing
  63. X+ Jeff Buhrt
  64. X+     -one more possible NULL pointer fixed
  65. X+     -added NONOTIMEOUT for those that don't have notimeout() in curses
  66. X+     -undef CRYPT=-DCRYPT_PATH... if crypt isn't available
  67. X+     -merged simple fmod into interp.c if fmod() is not present
  68. X+ 
  69. X  CHANGES BETWEEN 6.18 and 6.17
  70. X  James Dugal    
  71. X      - NULL pointer fix for is_locked
  72. X*** 618/README    Thu Sep 26 10:39:38 1991
  73. X--- README    Thu Sep 26 10:47:05 1991
  74. X***************
  75. X*** 1,9 ****
  76. X  This is a much modified version of the public domain spread sheet sc,
  77. X  posted several years ago by Mark Weiser as vc, originally by James Gosling.
  78. X  
  79. X! CHANGES lists the changes since 6.1 to 6.18.
  80. X!     Sc6.16 was released to comp.sources.misc and two sets of patches
  81. X!     bring Sc6.16->6.17->6.18.
  82. X  
  83. X  Current maintainer: {sequent, uunet}!sawmill!prslnk!buhrt (Jeff Buhrt)
  84. X  
  85. X--- 1,9 ----
  86. X  This is a much modified version of the public domain spread sheet sc,
  87. X  posted several years ago by Mark Weiser as vc, originally by James Gosling.
  88. X  
  89. X! CHANGES lists the changes since 6.1 to 6.19.
  90. X!     Sc6.16 was released to comp.sources.misc and three sets of patches
  91. X!     bring Sc6.16->6.17->6.18->6.19.
  92. X  
  93. X  Current maintainer: {sequent, uunet}!sawmill!prslnk!buhrt (Jeff Buhrt)
  94. X  
  95. X***************
  96. X*** 72,78 ****
  97. X  
  98. X  Archives:
  99. X  1) (FTP) jpd@usl.edu James Dugal
  100. X!     pc.usl.edu
  101. X  
  102. X  2) (UUCP) marc@dumbcat.sf.ca.us (Marco S Hyman)
  103. X      dumbcat Any ACU 9600 14157850194 "" \d\r in:--in: nuucp word: guest
  104. X--- 72,78 ----
  105. X  
  106. X  Archives:
  107. X  1) (FTP) jpd@usl.edu James Dugal
  108. X!     pc.usl.edu    in the pub/unix directory
  109. X  
  110. X  2) (UUCP) marc@dumbcat.sf.ca.us (Marco S Hyman)
  111. X      dumbcat Any ACU 9600 14157850194 "" \d\r in:--in: nuucp word: guest
  112. X*** 618/sc.doc    Thu Sep 26 10:39:40 1991
  113. X--- sc.doc    Thu Sep 26 10:17:15 1991
  114. X***************
  115. X*** 15,21 ****
  116. X  .\" - TPs use default indent except for function names, then 18.
  117. X  .\" - Smallify uppercase strings.
  118. X  .\" - Avoid passive voice and third person.
  119. X! .\" $Revision: 6.18 $
  120. X  .\"
  121. X  .TH PNAME\ #REVISION#\  1
  122. X  .SH NAME
  123. X--- 15,21 ----
  124. X  .\" - TPs use default indent except for function names, then 18.
  125. X  .\" - Smallify uppercase strings.
  126. X  .\" - Avoid passive voice and third person.
  127. X! .\" $Revision: 6.19 $
  128. X  .\"
  129. X  .TH PNAME\ #REVISION#\  1
  130. X  .SH NAME
  131. X***************
  132. X*** 263,269 ****
  133. X  A constant string may be preceeded with a backslash (`\\').
  134. X  In this case the constant string will be used as a ``wheel''
  135. X  to fill a column, e.g. "\\-" for a line in a column,
  136. X! and "\\Yeh " for "Yeh Yeh Ye".
  137. X  If the cell has a numeric value,
  138. X  it follows as
  139. X  .RI [ value ],
  140. X--- 263,269 ----
  141. X  A constant string may be preceeded with a backslash (`\\').
  142. X  In this case the constant string will be used as a ``wheel''
  143. X  to fill a column, e.g. "\\-" for a line in a column,
  144. X! and "\\Yeh\ " for "Yeh\ Yeh\ Ye".
  145. X  If the cell has a numeric value,
  146. X  it follows as
  147. X  .RI [ value ],
  148. X***************
  149. X*** 469,474 ****
  150. X--- 469,475 ----
  151. X  If the character cursor is not on the top line, these are alternate,
  152. X  .IR vi -compatible
  153. X  cell cursor controls (left, down, up, right).
  154. X+ Space is just like l (right).
  155. X  .TP
  156. X  .B "H, J, K, L"
  157. X  If the character cursor is not on the top line, these move the cursor
  158. X***************
  159. X*** 626,632 ****
  160. X  to be flushed left against the left edge of the cell.
  161. X  .\" ----------
  162. X  .IP \fB"\fP
  163. X- .PD 0
  164. X  Enter a label string into the current cell
  165. X  to be centered in the column.
  166. X  .\" ----------
  167. X--- 627,632 ----
  168. X***************
  169. X*** 635,641 ****
  170. X  Enter a label string into the current cell
  171. X  to be flushed right against the right edge of the cell.
  172. X  .\" ----------
  173. X- .PD
  174. X  .TP
  175. X  .B F
  176. X  Enter a format string into the current cell.  This format string
  177. X--- 635,640 ----
  178. X***************
  179. X*** 751,757 ****
  180. X  .BR TAB
  181. X  Mark && append a range (ex: A0:A0)
  182. X  .br
  183. X! TAB, move around w/i a range; TAB, append range string.
  184. X  .TP
  185. X  .BR CR
  186. X  Save
  187. X--- 750,756 ----
  188. X  .BR TAB
  189. X  Mark && append a range (ex: A0:A0)
  190. X  .br
  191. X! TAB, move around within a range; TAB, append range string.
  192. X  .TP
  193. X  .BR CR
  194. X  Save
  195. X***************
  196. X*** 765,771 ****
  197. X  .BR /
  198. X  Search for a string in the history
  199. X  .RS
  200. X! \fBESC\fP    edit the you typed
  201. X  .br
  202. X  \fBCR\fP    search
  203. X  .br
  204. X--- 764,770 ----
  205. X  .BR /
  206. X  Search for a string in the history
  207. X  .RS
  208. X! \fBESC\fP    edit the string you typed
  209. X  .br
  210. X  \fBCR\fP    search
  211. X  .br
  212. X***************
  213. X*** 1782,1788 ****
  214. X  overflows.
  215. X  .\" ----------
  216. X  .TP 18
  217. X! .B pi
  218. X  A constant quite close to pi.
  219. X  .\" ----------
  220. X  .TP 18
  221. X--- 1781,1787 ----
  222. X  overflows.
  223. X  .\" ----------
  224. X  .TP 18
  225. X! .B pi\ \ @pi
  226. X  A constant quite close to pi.
  227. X  .\" ----------
  228. X  .TP 18
  229. X***************
  230. X*** 2232,2238 ****
  231. X  Jim Clausing,
  232. X  Dave Close,
  233. X  Chris Cole,
  234. X! Jonathan Crompron
  235. X  David I. Dalva,
  236. X  Glen Ditchfield,
  237. X  Sam Drake,
  238. X--- 2231,2237 ----
  239. X  Jim Clausing,
  240. X  Dave Close,
  241. X  Chris Cole,
  242. X! Jonathan Crompron,
  243. X  David I. Dalva,
  244. X  Glen Ditchfield,
  245. X  Sam Drake,
  246. X***************
  247. X*** 2241,2247 ****
  248. X  Andy Fyfe,
  249. X  Jack Goral,
  250. X  Piercarlo "Peter" Grandi,
  251. X! Henk Hesselink
  252. X  Jeffrey C Honig,
  253. X  Kurt Horton,
  254. X  Jonathan I. Kamens,
  255. X--- 2240,2246 ----
  256. X  Andy Fyfe,
  257. X  Jack Goral,
  258. X  Piercarlo "Peter" Grandi,
  259. X! Henk Hesselink,
  260. X  Jeffrey C Honig,
  261. X  Kurt Horton,
  262. X  Jonathan I. Kamens,
  263. X***************
  264. X*** 2248,2255 ****
  265. X  Peter King,
  266. X  Tom Kloos,
  267. X  Casey Leedom,
  268. X! Jay Lepreau
  269. X! Dave Lewis, 
  270. X  Rick Linck,
  271. X  Soren Lundsgaard,
  272. X  Tad Mannes,
  273. X--- 2247,2254 ----
  274. X  Peter King,
  275. X  Tom Kloos,
  276. X  Casey Leedom,
  277. X! Jay Lepreau,
  278. X! Dave Lewis,
  279. X  Rick Linck,
  280. X  Soren Lundsgaard,
  281. X  Tad Mannes,
  282. X*** 618/psc.doc    Thu Sep 26 10:38:45 1991
  283. X--- psc.doc    Thu Sep 26 10:34:28 1991
  284. X***************
  285. X*** 1,4 ****
  286. X! .\" $Revision $
  287. X  .TH PPNAME\ #REVISION#\  1
  288. X  .SH NAME
  289. X  ppname \- prepare pname files
  290. X--- 1,4 ----
  291. X! .\" $ Revision $
  292. X  .TH PPNAME\ #REVISION#\  1
  293. X  .SH NAME
  294. X  ppname \- prepare pname files
  295. X*** 618/Makefile    Thu Sep 26 10:38:46 1991
  296. X--- Makefile    Thu Sep 26 15:21:26 1991
  297. X***************
  298. X*** 1,7 ****
  299. X! # Makefile $Revision: 6.17 $
  300. X  #
  301. X  # 1) Select the proper EXDIR (path), MANDIR, MANEXT, LIBDIR, SIGVOID,
  302. X! #    RE_COMP/REGCMP, and DFLT_PAGER. Most of the other things aren't
  303. X  #    normally changed (see the comments with each)
  304. X  # 2) Select the proper machine/compiler/OS section of code
  305. X  #    for MS-DOS look for the pattern 'MS-DOS'
  306. X--- 1,7 ----
  307. X! # Makefile $Revision: 6.19 $
  308. X  #
  309. X  # 1) Select the proper EXDIR (path), MANDIR, MANEXT, LIBDIR, SIGVOID,
  310. X! #    RE_COMP/REGCMP, DFLT_PAGER, and FMOD. Most of the other things aren't
  311. X  #    normally changed (see the comments with each)
  312. X  # 2) Select the proper machine/compiler/OS section of code
  313. X  #    for MS-DOS look for the pattern 'MS-DOS'
  314. X***************
  315. X*** 88,94 ****
  316. X  # this is the name to save back ups in
  317. X  SAVE=-DSAVENAME=\"$(NAME).SAVE\"
  318. X  
  319. X! # path to crypt
  320. X  # most systems
  321. X  CRYPT=-DCRYPT_PATH=\"/bin/crypt\"
  322. X  # BSD
  323. X--- 88,94 ----
  324. X  # this is the name to save back ups in
  325. X  SAVE=-DSAVENAME=\"$(NAME).SAVE\"
  326. X  
  327. X! # path to crypt, do not define if you don't have crypt
  328. X  # most systems
  329. X  CRYPT=-DCRYPT_PATH=\"/bin/crypt\"
  330. X  # BSD
  331. X***************
  332. X*** 96,101 ****
  333. X--- 96,110 ----
  334. X  # other people?
  335. X  #CRYPT=CRYPT_PATH=\"/usr/local/bin/crypt\"
  336. X  
  337. X+ # If you get errors about fmod being undefined when you try to
  338. X+ # compile, then define NO_FMOD (most likely BSD4.3 and Mt Xinu).
  339. X+ #FMOD=-DNO_FMOD
  340. X+ FMOD=
  341. X+ 
  342. X+ # If your system doesn't have notimeout() in curses define NONOTIMEOUT
  343. X+ NONOTIMEOUT=
  344. X+ #NONOTIMEOUT=-DNONOTIMEOUT
  345. X+ 
  346. X  # flags for lint
  347. X  LINTFLAGS=-abchxv
  348. X  
  349. X***************
  350. X*** 122,127 ****
  351. X--- 131,142 ----
  352. X  IDLOKBAD=-DIDLOKBAD
  353. X  #IDLOKBAD=
  354. X  
  355. X+ # If moving right off the screen causes the screen to not redraw
  356. X+ # properly, define RIGHT_CBUG to get around a curses problem on some
  357. X+ # boxes, this forces screen redraws when going right off the screen
  358. X+ RIGHTBUG=
  359. X+ #RIGHTBUG=-DRIGHT_CBUG
  360. X+ 
  361. X  # IF you have problems w/ your yacc try bison, Berkeley yacc, or
  362. X  # some other yacc. Some systems don't allow you to
  363. X  # increase the number of terminals (mostly AT&T), SCO's does though.
  364. X***************
  365. X*** 260,266 ****
  366. X      screen.o version.o vi.o vmtbl.o xmalloc.o
  367. X  
  368. X  # The documents in the Archive
  369. X! DOCS=CHANGES README sc.doc psc.doc tutorial.sc VMS_NOTES torev
  370. X  
  371. X  all:    $(name) p$(name) $(name)qref
  372. X  
  373. X--- 275,281 ----
  374. X      screen.o version.o vi.o vmtbl.o xmalloc.o
  375. X  
  376. X  # The documents in the Archive
  377. X! DOCS=CHANGES README sc.doc psc.doc tutorial.sc VMS_NOTES torev build.com
  378. X  
  379. X  all:    $(name) p$(name) $(name)qref
  380. X  
  381. X***************
  382. X*** 307,313 ****
  383. X  # Objects
  384. X  
  385. X  cmds.o: cmds.c sc.h
  386. X!     $(CC) ${CFLAGS} ${DOBACKUPS} -c cmds.c
  387. X  
  388. X  crypt.o: crypt.c sc.h
  389. X      $(CC) ${CFLAGS} ${CRYPT} ${DOBACKUPS} -c crypt.c
  390. X--- 322,328 ----
  391. X  # Objects
  392. X  
  393. X  cmds.o: cmds.c sc.h
  394. X!     $(CC) ${CFLAGS} ${DOBACKUPS} ${CRYPT} -c cmds.c
  395. X  
  396. X  crypt.o: crypt.c sc.h
  397. X      $(CC) ${CFLAGS} ${CRYPT} ${DOBACKUPS} -c crypt.c
  398. X***************
  399. X*** 315,323 ****
  400. X  format.o: format.c
  401. X  
  402. X  help.o: help.c sc.h
  403. X  
  404. X  interp.o:    interp.c sc.h
  405. X!     $(CC) ${CFLAGS} ${IEEE_MATH} ${SIGVOID} ${RINT} ${RE_COMP} ${REGCMP} -c interp.c
  406. X  
  407. X  gram.o:    sc.h y.tab.h gram.c
  408. X      $(CC) ${CFLAGS} -c gram.c
  409. X--- 330,342 ----
  410. X  format.o: format.c
  411. X  
  412. X  help.o: help.c sc.h
  413. X+     $(CC) ${CFLAGS} ${CRYPT} -c help.c
  414. X+ 
  415. X+ qhelp.o: qhelp.c sc.h
  416. X+     $(CC) ${CFLAGS} ${CRYPT} -c qhelp.c
  417. X  
  418. X  interp.o:    interp.c sc.h
  419. X!     $(CC) ${CFLAGS} ${IEEE_MATH} ${SIGVOID} ${RINT} ${RE_COMP} ${REGCMP} ${FMOD} -c interp.c
  420. X  
  421. X  gram.o:    sc.h y.tab.h gram.c
  422. X      $(CC) ${CFLAGS} -c gram.c
  423. X***************
  424. X*** 325,331 ****
  425. X      sed < gram.y > statres.h -f sres.sed
  426. X  
  427. X  lex.o:    sc.h y.tab.h gram.o lex.c
  428. X!     $(CC) ${CFLAGS} ${SIMPLE} ${IEEE_MATH} ${SIGVOID} -c lex.c
  429. X  
  430. X  pxmalloc.o: sc.h pxmalloc.c
  431. X      $(CC) ${CFLAGS} -c -DPSC pxmalloc.c
  432. X--- 344,350 ----
  433. X      sed < gram.y > statres.h -f sres.sed
  434. X  
  435. X  lex.o:    sc.h y.tab.h gram.o lex.c
  436. X!     $(CC) ${CFLAGS} ${SIMPLE} ${IEEE_MATH} ${SIGVOID} ${NONOTIMEOUT} -c lex.c
  437. X  
  438. X  pxmalloc.o: sc.h pxmalloc.c
  439. X      $(CC) ${CFLAGS} -c -DPSC pxmalloc.c
  440. X***************
  441. X*** 377,383 ****
  442. X      name=$(name) NAME=$(NAME) LIBDIR=$(LIBDIR) sh torev sc.doc >  $(name).1
  443. X  #    sed -e s/pname/$(name)/g -e s/PNAME/$(NAME)/g \
  444. X  #       -e s%#LIBDIR#%$(LIBDIR)%g sc.doc >  $(name).1
  445. X! #    REVISION=`sed -e '/Revision/!D' -e 's/.*$Revision: 6.17 $(
  446. X  #    sed -e s/pname/$(name)/g -e s/PNAME/$(NAME)/g \
  447. X  #        -e s%#LIBDIR#%$(LIBDIR)%g \
  448. X  #        -e 's/#REVISION#/$(REVISION)/' sc.doc >  $(name).1
  449. X--- 396,402 ----
  450. X      name=$(name) NAME=$(NAME) LIBDIR=$(LIBDIR) sh torev sc.doc >  $(name).1
  451. X  #    sed -e s/pname/$(name)/g -e s/PNAME/$(NAME)/g \
  452. X  #       -e s%#LIBDIR#%$(LIBDIR)%g sc.doc >  $(name).1
  453. X! #    REVISION=`sed -e '/Revision/!D' -e 's/.*$Revision: 6.19 $(
  454. X  #    sed -e s/pname/$(name)/g -e s/PNAME/$(NAME)/g \
  455. X  #        -e s%#LIBDIR#%$(LIBDIR)%g \
  456. X  #        -e 's/#REVISION#/$(REVISION)/' sc.doc >  $(name).1
  457. X***************
  458. X*** 429,435 ****
  459. X  diffs: ${SRC}
  460. X      for i in ${DOCS} ${SRC}  ;\
  461. X          do \
  462. X!         rcsdiff -c -r6.16 $$i ;\
  463. X          done
  464. X  
  465. X  # THA 10/14/90  Added code to make a patchfile
  466. X--- 448,454 ----
  467. X  diffs: ${SRC}
  468. X      for i in ${DOCS} ${SRC}  ;\
  469. X          do \
  470. X!         rcsdiff -c -r6.18 $$i ;\
  471. X          done
  472. X  
  473. X  # THA 10/14/90  Added code to make a patchfile
  474. X*** 618/cmds.c    Thu Sep 26 10:39:42 1991
  475. X--- cmds.c    Thu Sep 26 10:17:26 1991
  476. X***************
  477. X*** 7,13 ****
  478. X   *
  479. X   *              More mods Robert Bond, 12/86
  480. X   *
  481. X!  *        $Revision: 6.18 $
  482. X   */
  483. X  
  484. X  #include <sys/types.h>
  485. X--- 7,13 ----
  486. X   *
  487. X   *              More mods Robert Bond, 12/86
  488. X   *
  489. X!  *        $Revision: 6.19 $
  490. X   */
  491. X  
  492. X  #include <sys/types.h>
  493. X***************
  494. X*** 20,26 ****
  495. X  #endif
  496. X  
  497. X  #include <curses.h>
  498. X! #if defined(BSD42) || defined(BSD43)
  499. X  #include <sys/file.h>
  500. X  #else
  501. X  #include <fcntl.h>
  502. X--- 20,26 ----
  503. X  #endif
  504. X  
  505. X  #include <curses.h>
  506. X! #if defined(BSD42) || defined(BSD43) || defined(VMS)
  507. X  #include <sys/file.h>
  508. X  #else
  509. X  #include <fcntl.h>
  510. X***************
  511. X*** 1358,1364 ****
  512. X      char save[PATHLEN];
  513. X      int pid;
  514. X  
  515. X! #if !defined(VMS) && !defined(MSDOS)
  516. X      if (Crypt) {
  517. X      return (cwritefile(fname, r0, c0, rn, cn));
  518. X      }
  519. X--- 1358,1364 ----
  520. X      char save[PATHLEN];
  521. X      int pid;
  522. X  
  523. X! #if !defined(VMS) && !defined(MSDOS) && defined(CRYPT_PATH)
  524. X      if (Crypt) {
  525. X      return (cwritefile(fname, r0, c0, rn, cn));
  526. X      }
  527. X***************
  528. X*** 1408,1414 ****
  529. X          (void) strcpy(save,fname);
  530. X      }
  531. X  
  532. X! #if !defined(VMS) && !defined(MSDOS)
  533. X      if (Crypt)  {
  534. X      creadfile(save, eraseflg);
  535. X      return;
  536. X--- 1408,1414 ----
  537. X          (void) strcpy(save,fname);
  538. X      }
  539. X  
  540. X! #if !defined(VMS) && !defined(MSDOS) && defined(CRYPT_PATH)
  541. X      if (Crypt)  {
  542. X      creadfile(save, eraseflg);
  543. X      return;
  544. X***************
  545. X*** 1675,1681 ****
  546. X  }
  547. X  
  548. X  /* expand a ~ in a path to your home directory */
  549. X! #if !defined(MSDOS)
  550. X  #include <pwd.h>
  551. X  #endif
  552. X  char    *
  553. X--- 1675,1681 ----
  554. X  }
  555. X  
  556. X  /* expand a ~ in a path to your home directory */
  557. X! #if !defined(MSDOS) && !defined(VMS)
  558. X  #include <pwd.h>
  559. X  #endif
  560. X  char    *
  561. X***************
  562. X*** 1698,1704 ****
  563. X          if ((*pathptr == '/') || (*pathptr == '\0'))
  564. X          {    strcpy(tmppath, HomeDir);
  565. X          }
  566. X! #if !defined(MSDOS)
  567. X          else
  568. X          {    struct    passwd *pwent;
  569. X              extern    struct    passwd *getpwnam();
  570. X--- 1698,1704 ----
  571. X          if ((*pathptr == '/') || (*pathptr == '\0'))
  572. X          {    strcpy(tmppath, HomeDir);
  573. X          }
  574. X! #if !defined(MSDOS) && !defined(VMS)
  575. X          else
  576. X          {    struct    passwd *pwent;
  577. X              extern    struct    passwd *getpwnam();
  578. X*** 618/crypt.c    Thu Sep 26 10:38:48 1991
  579. X--- crypt.c    Thu Sep 26 10:17:27 1991
  580. X***************
  581. X*** 2,10 ****
  582. X   * Encryption utilites
  583. X   * Bradley Williams    
  584. X   * {allegra,ihnp4,uiucdcs,ctvax}!convex!williams
  585. X!  * $Revision: 6.17 $
  586. X   */
  587. X  
  588. X  #include <stdio.h>
  589. X  #include <curses.h>
  590. X  
  591. X--- 2,12 ----
  592. X   * Encryption utilites
  593. X   * Bradley Williams    
  594. X   * {allegra,ihnp4,uiucdcs,ctvax}!convex!williams
  595. X!  * $Revision: 6.19 $
  596. X   */
  597. X  
  598. X+ #if !defined(VMS) && !defined(MSDOS) && defined(CRYPT_PATH)
  599. X+ 
  600. X  #include <stdio.h>
  601. X  #include <curses.h>
  602. X  
  603. X***************
  604. X*** 189,191 ****
  605. X--- 191,194 ----
  606. X      return(0);
  607. X  }
  608. X  
  609. X+ #endif /* CRYPT_PATH */
  610. X*** 618/format.c    Thu Sep 26 10:39:43 1991
  611. X--- format.c    Thu Sep 26 10:31:21 1991
  612. X***************
  613. X*** 3,9 ****
  614. X   * Mark Nagel <nagel@ics.uci.edu>
  615. X   * 20 July 1989
  616. X   *
  617. X!  * $Revision: 6.18 $
  618. X   *
  619. X   * bool
  620. X   * format(fmt, num, buf, buflen)
  621. X--- 3,9 ----
  622. X   * Mark Nagel <nagel@ics.uci.edu>
  623. X   * 20 July 1989
  624. X   *
  625. X!  * $Revision: 6.19 $
  626. X   *
  627. X   * bool
  628. X   * format(fmt, num, buf, buflen)
  629. X*** 618/help.c    Thu Sep 26 10:39:46 1991
  630. X--- help.c    Thu Sep 26 10:17:31 1991
  631. X***************
  632. X*** 2,13 ****
  633. X   * Help functions for sc 
  634. X   * R. Bond, 1988
  635. X   * J. Buhrt 1990
  636. X!  * $Revision: 6.18 $
  637. X   */
  638. X  
  639. X  #ifdef QREF
  640. X  #include <stdio.h>
  641. X! char    *header = " Quick Reference\n\n$Revision: 6.18 $";
  642. X  #else
  643. X  #include <curses.h>
  644. X  #include "sc.h"
  645. X--- 2,13 ----
  646. X   * Help functions for sc 
  647. X   * R. Bond, 1988
  648. X   * J. Buhrt 1990
  649. X!  * $Revision: 6.19 $
  650. X   */
  651. X  
  652. X  #ifdef QREF
  653. X  #include <stdio.h>
  654. X! char    *header = " Quick Reference\n\n$Revision: 6.19 $";
  655. X  #else
  656. X  #include <curses.h>
  657. X  #include "sc.h"
  658. X***************
  659. X*** 49,55 ****
  660. X--- 49,59 ----
  661. X  "          l    Autolabeling defined cells enable/disable.",
  662. X  "          n    If enabled, a digit starts a numeric value.",
  663. X  "          t    Top line display enable/disable.",
  664. X+ #if !defined(VMS) && !defined(MSDOS) && defined(CRYPT_PATH)
  665. X  "          x    Encrypt/decrypt database and listing files.",
  666. X+ #else
  667. X+ "          x    Encrypt/decrypt database and listing files (Not available).",
  668. X+ #endif
  669. X  "          $    Dollar prescale.  If enabled, all numeric constants",
  670. X  "               (not expressions) entered are multipled by 0.01.",
  671. X  "          r    Newline action.  Toggle between no action, move down",
  672. X*** 618/interp.c    Thu Sep 26 10:39:50 1991
  673. X--- interp.c    Thu Sep 26 10:17:39 1991
  674. X***************
  675. X*** 7,17 ****
  676. X   *
  677. X   *              More mods Robert Bond, 12/86
  678. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  679. X!  *        $Revision: 6.18 $
  680. X   */
  681. X  
  682. X  #define DEBUGDTS 1        /* REMOVE ME */
  683. X! 
  684. X  #include <sys/types.h>
  685. X  #ifdef aiws
  686. X  #undef _C_func            /* Fixes for undefined symbols on AIX */
  687. X--- 7,17 ----
  688. X   *
  689. X   *              More mods Robert Bond, 12/86
  690. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  691. X!  *        $Revision: 6.19 $
  692. X   */
  693. X  
  694. X  #define DEBUGDTS 1        /* REMOVE ME */
  695. X!      
  696. X  #include <sys/types.h>
  697. X  #ifdef aiws
  698. X  #undef _C_func            /* Fixes for undefined symbols on AIX */
  699. X***************
  700. X*** 1879,1886 ****
  701. X--- 1879,1891 ----
  702. X  
  703. X      if (isconstant) {
  704. X      /* prescale input unless it has a decimal */
  705. X+ #if defined(IEEE_MATH) && !defined(NO_FMOD)
  706. X      if (!loading && (prescale < (double)0.9999999) &&
  707. X                  (fmod(val, (double)1.0) == (double)0))
  708. X+ #else
  709. X+     if (!loading && (prescale < (double)0.9999999) &&
  710. X+             ((val - floor(val)) == (double)0))
  711. X+ #endif
  712. X          val *= prescale;
  713. X  
  714. X      v->v = val;
  715. X*** 618/lex.c    Thu Sep 26 10:39:51 1991
  716. X--- lex.c    Thu Sep 26 10:17:41 1991
  717. X***************
  718. X*** 7,13 ****
  719. X   *
  720. X   *              More mods Robert Bond, 12/86
  721. X   *        More mods by Alan Silverstein, 3/88, see list of changes.
  722. X!  *        $Revision: 6.18 $
  723. X   *
  724. X   */
  725. X  
  726. X--- 7,13 ----
  727. X   *
  728. X   *              More mods Robert Bond, 12/86
  729. X   *        More mods by Alan Silverstein, 3/88, see list of changes.
  730. X!  *        $Revision: 6.19 $
  731. X   *
  732. X   */
  733. X  
  734. X***************
  735. X*** 34,39 ****
  736. X--- 34,43 ----
  737. X  #include <setjmp.h>
  738. X  #include "sc.h"
  739. X  #include <ctype.h>
  740. X+ 
  741. X+ #ifdef NONOTIMEOUT
  742. X+ #define    notimeout(a1, a2)
  743. X+ #endif
  744. X  
  745. X  #ifdef VMS
  746. X  #include "gram_tab.h"
  747. X*** 618/psc.c    Thu Sep 26 10:38:56 1991
  748. X--- psc.c    Thu Sep 26 10:31:19 1991
  749. X***************
  750. X*** 17,23 ****
  751. X   *  Author: Robert Bond
  752. X   *  Adjustments: Jeff Buhrt and Eric Putz
  753. X   */
  754. X! char *rev = "$Revision: 6.17 $";
  755. X  
  756. X  #include <ctype.h>
  757. X  #include <stdio.h>
  758. X--- 17,23 ----
  759. X   *  Author: Robert Bond
  760. X   *  Adjustments: Jeff Buhrt and Eric Putz
  761. X   */
  762. X! char *rev = "$Revision: 6.19 $";
  763. X  
  764. X  #include <ctype.h>
  765. X  #include <stdio.h>
  766. X*** 618/range.c    Thu Sep 26 10:38:57 1991
  767. X--- range.c    Thu Sep 26 10:31:17 1991
  768. X***************
  769. X*** 4,10 ****
  770. X   *
  771. X   *              Robert Bond, 4/87
  772. X   *
  773. X!  *        $Revision: 6.17 $
  774. X   */
  775. X  
  776. X  #include <sys/types.h>
  777. X--- 4,10 ----
  778. X   *
  779. X   *              Robert Bond, 4/87
  780. X   *
  781. X!  *        $Revision: 6.19 $
  782. X   */
  783. X  
  784. X  #include <sys/types.h>
  785. X*** 618/sc.c    Thu Sep 26 10:39:52 1991
  786. X--- sc.c    Thu Sep 26 15:21:29 1991
  787. X***************
  788. X*** 8,14 ****
  789. X   *              More mods Robert Bond, 12/86
  790. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  791. X   *        Currently supported by sequent!sawmill!buhrt (Jeff Buhrt)
  792. X!  *        $Revision: 6.18 $
  793. X   *
  794. X   */
  795. X  
  796. X--- 8,14 ----
  797. X   *              More mods Robert Bond, 12/86
  798. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  799. X   *        Currently supported by sequent!sawmill!buhrt (Jeff Buhrt)
  800. X!  *        $Revision: 6.19 $
  801. X   *
  802. X   */
  803. X  
  804. X***************
  805. X*** 67,72 ****
  806. X--- 67,75 ----
  807. X  int numeric;
  808. X  char *mdir;
  809. X  int showsc, showsr;    /* Starting cell for highlighted range */
  810. X+ #ifdef RIGHT_CBUG
  811. X+ int    wasforw    = FALSE;
  812. X+ #endif
  813. X  
  814. X  void    update();
  815. X  void    repaint();
  816. X***************
  817. X*** 96,102 ****
  818. X  #endif
  819. X  
  820. X  extern    int lastmx, lastmy;    /* Screen address of the cursor */
  821. X! extern    int lastcol, cols;    /* Spreadsheet Column the cursor was in last */
  822. X  
  823. X  /* a linked list of free [struct ent]'s, uses .next as the pointer */
  824. X  struct ent *freeents = NULL;
  825. X--- 99,105 ----
  826. X  #endif
  827. X  
  828. X  extern    int lastmx, lastmy;    /* Screen address of the cursor */
  829. X! extern    int lastcol, lcols;    /* Spreadsheet Column the cursor was in last */
  830. X  
  831. X  /* a linked list of free [struct ent]'s, uses .next as the pointer */
  832. X  struct ent *freeents = NULL;
  833. X***************
  834. X*** 206,213 ****
  835. X--- 209,220 ----
  836. X  #if defined(MSDOS)
  837. X      if ((revi = strrchr(argv[0], '\\')) != NULL)
  838. X  #else
  839. X+ #ifdef VMS
  840. X+     if ((revi = strrchr(argv[0], ']')) != NULL)
  841. X+ #else
  842. X      if ((revi = strrchr(argv[0], '/')) != NULL)
  843. X  #endif
  844. X+ #endif
  845. X      progname = revi+1;
  846. X      else
  847. X      progname = argv[0];
  848. X***************
  849. X*** 405,410 ****
  850. X--- 412,420 ----
  851. X              numeric_field = 0;
  852. X              }
  853. X              forwcol(arg);
  854. X+ #ifdef RIGHT_CBUG
  855. X+             wasforw++;
  856. X+ #endif
  857. X              break;
  858. X  
  859. X          case ctl('g'):
  860. X***************
  861. X*** 1194,1200 ****
  862. X              break;
  863. X  #endif
  864. X          case 'L':
  865. X!             forwcol(cols-(curcol-stcol)+1);
  866. X              break;
  867. X          case ' ':
  868. X          case 'l':
  869. X--- 1204,1210 ----
  870. X              break;
  871. X  #endif
  872. X          case 'L':
  873. X!             forwcol(lcols -(curcol-stcol)+1);
  874. X              break;
  875. X          case ' ':
  876. X          case 'l':
  877. X***************
  878. X*** 1416,1422 ****
  879. X      for (r=r1; r<=r2; r++)
  880. X          for (c=c1; c<=c2; c++) {
  881. X              p = *ATBL(tbl, r, c);
  882. X!             if (p->flags&is_locked)
  883. X                  return(1);
  884. X          }
  885. X      return(0);
  886. X--- 1426,1432 ----
  887. X      for (r=r1; r<=r2; r++)
  888. X          for (c=c1; c<=c2; c++) {
  889. X              p = *ATBL(tbl, r, c);
  890. X!             if (p && (p->flags & is_locked))
  891. X                  return(1);
  892. X          }
  893. X      return(0);
  894. X*** 618/sc.h    Thu Sep 26 10:39:53 1991
  895. X--- sc.h    Thu Sep 26 10:32:49 1991
  896. X***************
  897. X*** 6,12 ****
  898. X   *            University of Maryland
  899. X   *        R. Bond  12/86
  900. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  901. X!  *        $Revision: 6.18 $
  902. X   *
  903. X   */
  904. X  
  905. X--- 6,12 ----
  906. X   *            University of Maryland
  907. X   *        R. Bond  12/86
  908. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  909. X!  *        $Revision: 6.19 $
  910. X   *
  911. X   */
  912. X  
  913. X*** 618/screen.c    Thu Sep 26 10:39:54 1991
  914. X--- screen.c    Thu Sep 26 15:21:27 1991
  915. X***************
  916. X*** 8,14 ****
  917. X   *              More mods Robert Bond, 12/86
  918. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  919. X   *        Currently supported by sequent!sawmill!buhrt (Jeff Buhrt)
  920. X!  *        $Revision: 6.18 $
  921. X   *
  922. X   */
  923. X  
  924. X--- 8,14 ----
  925. X   *              More mods Robert Bond, 12/86
  926. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  927. X   *        Currently supported by sequent!sawmill!buhrt (Jeff Buhrt)
  928. X!  *        $Revision: 6.19 $
  929. X   *
  930. X   */
  931. X  
  932. X***************
  933. X*** 16,21 ****
  934. X--- 16,26 ----
  935. X  #include <curses.h>
  936. X  #include "sc.h"
  937. X  
  938. X+ #ifdef VMS
  939. X+ extern int VMS_read_raw;   /*sigh*/
  940. X+     VMS_read_raw = 1;
  941. X+ #endif
  942. X+ 
  943. X  #ifdef BROKENCURSES
  944. X          /* nl/nonl bug fix */
  945. X  #undef nl
  946. X***************
  947. X*** 30,36 ****
  948. X  char    mode_ind = '.';
  949. X  extern    char    revmsg[];
  950. X  
  951. X! int    rows, cols;
  952. X  int    lastmx, lastmy;    /* Screen address of the cursor */
  953. X  int    lastcol;    /* Spreadsheet Column the cursor was in last */
  954. X  extern    int *fwidth;
  955. X--- 35,41 ----
  956. X  char    mode_ind = '.';
  957. X  extern    char    revmsg[];
  958. X  
  959. X! int    rows, lcols;
  960. X  int    lastmx, lastmy;    /* Screen address of the cursor */
  961. X  int    lastcol;    /* Spreadsheet Column the cursor was in last */
  962. X  extern    int *fwidth;
  963. X***************
  964. X*** 37,42 ****
  965. X--- 42,50 ----
  966. X  extern    int showrange;    /* Causes ranges to be highlighted    */
  967. X  extern    int showneed;    /* Causes cells needing values to be highlighted */
  968. X  extern    int showexpr;    /* Causes cell exprs to be displayed, highlighted */
  969. X+ #ifdef RIGHT_CBUG
  970. X+ extern    int wasforw;    /* Causes screen to be redisplay if on lastcol */
  971. X+ #endif
  972. X  
  973. X  /*
  974. X   * update() does general screen update
  975. X***************
  976. X*** 69,77 ****
  977. X  
  978. X      /* First see if the last display still covers curcol */
  979. X      if (stcol <= curcol) { 
  980. X!         for (i = stcol, cols = 0, col = RESCOL;
  981. X                 (col + fwidth[i]) < COLS-1 && i < maxcols; i++) {
  982. X!             cols++;
  983. X  
  984. X              if (col_hidden[i])
  985. X                  continue;
  986. X--- 77,85 ----
  987. X  
  988. X      /* First see if the last display still covers curcol */
  989. X      if (stcol <= curcol) { 
  990. X!         for (i = stcol, lcols = 0, col = RESCOL;
  991. X                 (col + fwidth[i]) < COLS-1 && i < maxcols; i++) {
  992. X!             lcols++;
  993. X  
  994. X              if (col_hidden[i])
  995. X                  continue;
  996. X***************
  997. X*** 78,88 ****
  998. X              col += fwidth[i];
  999. X          }
  1000. X      }
  1001. X!     while (stcol + cols - 1 < curcol || curcol < stcol) {
  1002. X          FullUpdate++;
  1003. X          if (stcol - 1 == curcol) {    /* How about back one? */
  1004. X              stcol--;
  1005. X!         } else if (stcol + cols == curcol) {   /* Forward one? */
  1006. X              stcol++;
  1007. X          } else {
  1008. X              /* Try to put the cursor in the center of the screen */
  1009. X--- 86,96 ----
  1010. X              col += fwidth[i];
  1011. X          }
  1012. X      }
  1013. X!     while (stcol + lcols - 1 < curcol || curcol < stcol) {
  1014. X          FullUpdate++;
  1015. X          if (stcol - 1 == curcol) {    /* How about back one? */
  1016. X              stcol--;
  1017. X!         } else if (stcol + lcols == curcol) {   /* Forward one? */
  1018. X              stcol++;
  1019. X          } else {
  1020. X              /* Try to put the cursor in the center of the screen */
  1021. X***************
  1022. X*** 96,104 ****
  1023. X              }
  1024. X          }
  1025. X          /* Now pick up the counts again */
  1026. X!         for (i = stcol, cols = 0, col = RESCOL;
  1027. X              (col + fwidth[i]) < COLS-1 && i < maxcols; i++) {
  1028. X!             cols++;
  1029. X              if (col_hidden[i])
  1030. X                  continue;
  1031. X              col += fwidth[i];
  1032. X--- 104,112 ----
  1033. X              }
  1034. X          }
  1035. X          /* Now pick up the counts again */
  1036. X!         for (i = stcol, lcols = 0,col = RESCOL;
  1037. X              (col + fwidth[i]) < COLS-1 && i < maxcols; i++) {
  1038. X!             lcols++;
  1039. X              if (col_hidden[i])
  1040. X                  continue;
  1041. X              col += fwidth[i];
  1042. X***************
  1043. X*** 148,154 ****
  1044. X      }
  1045. X      lastcurrow = currow;
  1046. X      }
  1047. X!     mxcol = stcol + cols - 1;
  1048. X      mxrow = strow + rows - 1;
  1049. X  
  1050. X      /* Get rid of cursor standout on the cell at previous cursor position */
  1051. X--- 156,162 ----
  1052. X      }
  1053. X      lastcurrow = currow;
  1054. X      }
  1055. X!     mxcol = stcol + lcols - 1;
  1056. X      mxrow = strow + rows - 1;
  1057. X  
  1058. X      /* Get rid of cursor standout on the cell at previous cursor position */
  1059. X***************
  1060. X*** 189,194 ****
  1061. X--- 197,208 ----
  1062. X          (void) printw("%-*d", RESCOL, i);
  1063. X          row++;
  1064. X      }
  1065. X+ #ifdef RIGHT_CBUG
  1066. X+     if(wasforw) {
  1067. X+         clearok(stdscr, TRUE);
  1068. X+         wasforw = 0;
  1069. X+     }
  1070. X+ #endif
  1071. X      (void) move(2,0);
  1072. X      (void) printw("%*s", RESCOL, " ");
  1073. X  
  1074. X*** 618/version.c    Thu Sep 26 10:39:54 1991
  1075. X--- version.c    Thu Sep 26 10:18:47 1991
  1076. X***************
  1077. X*** 4,7 ****
  1078. X   * The part after the first colon, except the last char, appears on the screen.
  1079. X   */
  1080. X  
  1081. X! char *rev = "$Revision: 6.18 $";
  1082. X--- 4,7 ----
  1083. X   * The part after the first colon, except the last char, appears on the screen.
  1084. X   */
  1085. X  
  1086. X! char *rev = "$Revision: 6.19 $";
  1087. X*** 618/vi.c    Thu Sep 26 10:39:55 1991
  1088. X--- vi.c    Thu Sep 26 10:18:04 1991
  1089. X***************
  1090. X*** 1,7 ****
  1091. X  /*    SC    A Spreadsheet Calculator
  1092. X   *
  1093. X   *    One line vi emulation
  1094. X!  *    $Revision: 6.18 $
  1095. X   */
  1096. X  
  1097. X  #include <sys/types.h>
  1098. X--- 1,7 ----
  1099. X  /*    SC    A Spreadsheet Calculator
  1100. X   *
  1101. X   *    One line vi emulation
  1102. X!  *    $Revision: 6.19 $
  1103. X   */
  1104. X  
  1105. X  #include <sys/types.h>
  1106. X***************
  1107. X*** 112,117 ****
  1108. X--- 112,118 ----
  1109. X      case 'i':    u_save(c); insert_mode();    break;
  1110. X      case 'j':    for_hist();            break;
  1111. X      case 'k':    back_hist();            break;
  1112. X+     case ' ':
  1113. X      case 'l':    linelim = for_line(0);        break;
  1114. X      case 'n':    search_again();            break;
  1115. X      case 'q':    stop_edit();            break;
  1116. X*** 618/vmtbl.c    Thu Sep 26 10:39:02 1991
  1117. X--- vmtbl.c    Thu Sep 26 10:31:04 1991
  1118. X***************
  1119. X*** 8,14 ****
  1120. X   *              More mods Robert Bond, 12/86
  1121. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  1122. X   *        Currently supported by sequent!sawmill!buhrt (Jeff Buhrt)
  1123. X!  *        $Revision: 6.17 $
  1124. X   *
  1125. X   */
  1126. X  #ifdef PSC
  1127. X--- 8,14 ----
  1128. X   *              More mods Robert Bond, 12/86
  1129. X   *        More mods by Alan Silverstein, 3-4/88, see list of changes.
  1130. X   *        Currently supported by sequent!sawmill!buhrt (Jeff Buhrt)
  1131. X!  *        $Revision: 6.19 $
  1132. X   *
  1133. X   */
  1134. X  #ifdef PSC
  1135. X*** 618/xmalloc.c    Thu Sep 26 10:39:02 1991
  1136. X--- xmalloc.c    Thu Sep 26 10:31:15 1991
  1137. X***************
  1138. X*** 1,6 ****
  1139. X  /*
  1140. X   * A safer saner malloc, for careless programmers
  1141. X!  * $Revision: 6.17 $
  1142. X   */
  1143. X  
  1144. X  #include <stdio.h>
  1145. X--- 1,6 ----
  1146. X  /*
  1147. X   * A safer saner malloc, for careless programmers
  1148. X!  * $Revision: 6.19 $
  1149. X   */
  1150. X  
  1151. X  #include <stdio.h>
  1152. SHAR_EOF
  1153. $TOUCH -am 0926152291 pch618-619 &&
  1154. chmod 0666 pch618-619 ||
  1155. echo "restore of pch618-619 failed"
  1156. set `wc -c pch618-619`;Wc_c=$1
  1157. if test "$Wc_c" != "27397"; then
  1158.     echo original size 27397, current size $Wc_c
  1159. fi
  1160. # ============= build.com ==============
  1161. echo "x - extracting build.com (Text)"
  1162. sed 's/^X//' << 'SHAR_EOF' > build.com &&
  1163. X$! VMS command file to build SC and PSC (requires bison) on VMS
  1164. X$! SC:
  1165. X$! $Revision: 6.19 $
  1166. X$! bison -d gram.y
  1167. X$! ren gram_tab.c gram.c
  1168. X$ cc'p1'  /define=("SIMPLE","SIGVOID") sc.c
  1169. X$ cc'p1'  /define=("SIMPLE","SIGVOID") gram.c
  1170. X$ cc'p1'  /define=("SIMPLE","SIGVOID") lex.c
  1171. X$ cc'p1'  /define=("SIMPLE","SIGVOID","RINT") interp
  1172. X$ cc'p1'  /define=("SIMPLE","SIGVOID") cmds
  1173. X$ cc'p1'  /define=("SIMPLE","SIGVOID") xmalloc
  1174. X$ cc'p1'  /define=("SIMPLE","SIGVOID") range
  1175. X$ cc'p1'  /define=("SIMPLE","SIGVOID") help
  1176. X$ cc'p1'  /define=("SIMPLE","SIGVOID") vmtbl
  1177. X$ cc'p1'  /define=("SIMPLE","SIGVOID") screen
  1178. X$ cc'p1'  /define=("SIMPLE","SIGVOID") vi
  1179. X$ cc'p1'  /define=("SIMPLE","SIGVOID") format
  1180. X$ link'p1' sc.obj,lex.obj,gram.obj,interp.obj,cmds.obj,xmalloc.obj,-    
  1181. X       range.obj,help.obj,vmtbl.obj,screen.obj,vi.obj,format.obj,-
  1182. X       sys$library:vaxccurse.olb/lib,-
  1183. X       sys$library:vaxcrtl/shar
  1184. X$ !
  1185. X$ ! Create VMS foreign command symbol to test SC
  1186. X$ !
  1187. X$ sc == "$" + f$logical("SYS$DISK") + f$directory() + "SC.EXE"
  1188. X$!
  1189. X$! Now PSC
  1190. X$!
  1191. X!$ cc'p1' psc.c
  1192. X!$ cc'p1' getopt.c
  1193. X$ link'p1' psc,getopt,vmtbl.obj,xmalloc.obj,screen.obj,vi.obj,format.obj,-    
  1194. X       sys$library:vaxccurse.olb/lib,-
  1195. X       sys$library:vaxcrtl/shar
  1196. X$ !
  1197. X$ ! Create VMS foreign command symbol to test PSC (Note that
  1198. X$ ! PSC reads SYS$INPUT and writes to SYS$OUTPUT, so use
  1199. X$ ! DEFINE/USER to redirect.)
  1200. X$ !
  1201. X$ psc == "$" + f$logical("SYS$DISK") + f$directory() + "PSC.EXE"
  1202. SHAR_EOF
  1203. $TOUCH -am 0926105391 build.com &&
  1204. chmod 0444 build.com ||
  1205. echo "restore of build.com failed"
  1206. set `wc -c build.com`;Wc_c=$1
  1207. if test "$Wc_c" != "1437"; then
  1208.     echo original size 1437, current size $Wc_c
  1209. fi
  1210. exit 0
  1211.  
  1212. exit 0 # Just in case...
  1213. -- 
  1214. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1215. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1216. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1217. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1218.